package com.dao;

import com.domain.Activity;
import com.utils.JDBCUtils;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;

import java.util.List;

public class ActivityDao {
    //创建jdbcTemplate对象
    private JdbcTemplate jdbcTemplate = new JdbcTemplate(JDBCUtils.getDataSource());

    /**
     * 增加活动
     * @param activity 传入Activity类型的对象
     * @return 返回Integer类型的数据，1为成功，0为失败
     */
    public Integer addActivity(Activity activity){
        //添加语句
        String sql="insert into activity values(null,?,?,?,?,?)";
        int update = jdbcTemplate.update(sql, activity.getActivityName(), activity.getActivityDate(), activity.getActivityContent(),activity.getActivityType(),activity.getActivityGrade());
        return update;
    }

    /**
     * 根据活动id删除活动
     * @param id 传入Integer类型的活动id
     * @return 返回Integer类型的数据
     */
    public Integer deleteActivity(Integer id){
        //删除语句
        String sql="delete from activity where activityid=?";
        //进行执行
        int update = jdbcTemplate.update(sql, id);
        //返回结果
        return update;
    }

    /**
     * 更新活动数据
     * @param activity 传入Activity类型的对象
     * @return 返回Integer类型的数据，1为成功，0为失败
     */
    public Integer updateActivity(Activity activity){
        //更新
        String sql="update activity set activityName=?,activityDate=?,activityContent=?,activityType=? ,activityGrade=? where activityId=?";
        int update = jdbcTemplate.update(sql,
                activity.getActivityName(),
                activity.getActivityDate(),
                activity.getActivityContent(),
                activity.getActivityType(),
                activity.getActivityGrade(),
                activity.getActivityId());
        return update;
    }

    /**
     * 查询方法,查询所有
     * @return 返回List类型的数据
     */
    public List<Activity> findAllActivity(){
        //SQl
        String sql="select * from activity";
        //封装成activity对象
        List<Activity> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Activity.class));
        return list;
    }

    /**
     * 按照activityName查询
     * @param name 传入String类型的活动名字
     * @return 返回Activity类型的对象
     */
    public Activity findActivity(String name){
        //sql
        String sql="select * from activity where activityname LIKE \"%"+name+"%\" ";
        //进行查询
        List<Activity> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Activity.class));
        if (list==null || list.size()==0){
            return null;
        }
        return list.get(0);
    }

    /**
     * 按照活动的id查询
     * @param id 传入Integer类型的活动id
     * @return 返回Integer类型的数据，1为成功，0为失败
     */
    public Activity findActivity(Integer id){
        //sql
        String sql="select * from activity where activityId=?";
        //进行查询
        List<Activity> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Activity.class),id);

        if (list==null || list.size()==0){
            return null;
        }
        return list.get(0);
    }

}
